In recent years, there has been a great increase in the number of digital images (e.g., video and still images from digital cameras, scanned images, etc.). These images are defined in terms of picture elements known as “pixels”. Each pixel in a digital image is defined by one or more chromatic color component values (sometimes called “chromatic values”) and at times by one achromatic color component value (e.g., a brightness value such as luminance).
The simplest images are black and white images. The pixels of black and white images can be defined with respect to a single achromatic component value that defines an achromatic intensity of the pixel, but does not define any chromatic value for the pixel. Greyscale images are images with pixels that have only achromatic intensity values and no chromatic color values.
The pixels of color images can be defined with respect to various multi-dimensional color coordinate systems. Some examples of such color coordinate systems are tri-chromatic systems (such as RGB), brightness/bi-chromatic systems (such as YCbCr, YUV, etc.), and brightness, saturation, and hue systems (such as HSV).
Tri-chromatic color coordinate systems define an image with respect to three chromatic values. For example, an RGB color coordinate system is defined with respect to red, blue, and green chromatic values. Other tri-chromatic color coordinate systems define a pixel with respect to other chromatic values. Tri-chromatic color coordinate systems do not have an explicit achromatic brightness (sometimes called simply “brightness”) value for the pixel. Instead the overall brightness information about the pixel is distributed among the three chromatic values of the tri-chromatic color coordinate system.
Brightness/bi-chromatic systems (such as YCbCr) define an image with respect to a luminance component, which represents an achromatic intensity of the pixel, and two chromatic components. For example, in a YCbCr color coordinate system, the luminance value (Y) is an explicit, achromatic brightness component value of the pixel and the chromatic components are blue-chroma and red-chroma. The blue-chroma value defines the chromaticity of a pixel on a scale ranging from blue to yellow, while the red-chroma value defines the chromaticity of the pixel on a scale from red to green. Other color coordinate systems with one achromatic component and two chromatic components use different chroma scales (e.g., the YIQ color coordinate system uses chroma values that define the pixel on scales from purple to green and from orange to blue). The HSV and HSL color coordinate systems define a pixel in terms of an achromatic color coordinate V or L, a saturation S (chromatic-intensity), and a hue H (chromatic-hue).
To improve perceived image quality, numerous techniques have been proposed to date for improving the contrast (i.e., the amount of difference) between the brightness values of the pixels of the image. For example, in some images, the brightness values are all clustered toward the middle of the range of available brightness values. There are many ways of adjusting the contrast of images by adjusting the brightness of the individual pixel by different amounts. Some existing techniques for adjusting the contrast perform a linear adjustment operation on the brightness component. In other words, a typical contrast adjusting technique adjusts the brightness (e.g., luma or luminance) values linearly.
Other existing methods, such as gamma correction, apply a non-linear adjustment to the achromatic brightness component of the image, but do not apply any adjustment to the chromatic components. For example, a gamma correction on an image in a YCbCr color coordinate system changes the luminance component Y to a luma component Y′. Such a gamma correction operation is often not applied to the chromatic color component values.